﻿using System;
using System.Collections.Generic;
using System.Text;
using daStaticAnalyser.Analysers;
using daStaticAnalyser;
using daBase.Analyser;
using daSyntaxAnalyser.SyntaxTree;

namespace DifferentAnalizers
{
    /// <summary>
    /// Анализатор - модификатор доступа в классе
    /// </summary>
    [AnalyserDefaultSettings("Отсутствие модификатора доступа.", "Отсутствует модификатор доступа в классе/записи!", 10, "Секция не помечена модификатором доступа (private, protected, public, published), что может привести к неожиданным последствиям при смене компилятора. Укажите модификатор доступа.")]
    public class NoSectionDirectiveAnalyser : BaseStaticAnalyser
    {
        /// <summary>
        /// Собственно анализ
        /// </summary>
        /// <param name="e">параметр анализа</param>
        protected override void DoAnalyse(SyntaxTreeArgs e)
        {
            if ((e.Element is ClassSectionElement) && ((e.Element as ClassSectionElement).Type == null))
                AddError(e.Element.StartInfo, e.Element.ToString());
        }
    }
}
